package exercice_2;

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public abstract class Hk extends Frame {
    
    static final int WIDTH = 700;       
    static final int HEIGHT = 600;
    protected int profondeur;

    /**
     * Creation de Hk.
     *
     * @param profondeur pour obtenir la n-ième transformation
     */
    public Hk (int profondeur) {
        this.setSize(WIDTH, HEIGHT);
        this.setBackground (Color.white);
        this.setVisible(true);
        this.profondeur=profondeur;
        addWindowListener(new WindowHandler());
        setTitle("Exercice 2.1 - Classe Hk");
    }

    private class WindowHandler extends WindowAdapter {
        public void windowClosing(WindowEvent e) {System.exit(0);}
    }

    public void paint(Graphics g)
    {
        int height = getSize().height; 
        int width = getSize().width;
        int taille = 150;
        int x = width/2; 
        int y = height/2;   
        g.setColor(Color.black);  
        drawHk(x, y, taille, profondeur, g);
    }

   
   /**
    * Forme le dessin recursif
    * @param x Abscisse du centre du carré 
    * @param y Ordonnée du centre du carré 
    * @param n profondeur de récursion
    * @param taille longueur coté du carré
    * @param drawingArea Objet Graphics pour déssiner
    * 
    */
    public abstract  void drawHk(int x, int y, int k, int n, Graphics drawingArea) ;
}
